home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Monster Media 1996 #15
/
Monster Media Number 15 (Monster Media)(July 1996).ISO
/
bbs_misc
/
tg_300.zip
/
WHATSNEW.300
< prev
Wrap
Text File
|
1996-06-18
|
72KB
|
1,298 lines
Telegard Bulletin Board Software, v3.00
Revision History Documentation
Copyright (C) 1995,1996 by Tim Strike
All Rights Reserved.
3.00 Release (final) - June 18, 1996
Installation Notes:
Please refer to the documentation INSTALL.DOC for instructions on
how to upgrade from previous versions of Telegard, or how to
install Telegard for the first time. It is *imperative* that you
follow these instructions!
Release Notes:
This version is quite a huge jump in terms of magnitude of the
items required to update (language & scripts). The reasons are
two fold; it's been 3 months since the last Telegard release
(2.99.g4) and the changes made since then are quite big (this
WHATSNEW.300 file contains only the changes from G4 to 3.00, and
is as big as the file for G2 to G4).
Please review this *entire* file, paying special attention to the
languages and scripts sections. You *will* need to change your
scripts for this version to properly run (sorry).
Changes planned for 3.1:
While these changes outline those things that I intend on changing
for 3.1, they are not finalized -- other items may be changed, and
these items may not be changed.
(a) Scripting language overhaul
(b) File description storage overhaul
(c) Scan record overhaul (faster and more efficient)
(d) User-ID fields to 4 characters (nn-nnnn to nnnn)
(still base 36 - leaving 1,600,000 users possible)
(e) Text date fields from MM/DD/YY to MM/DD/YYYY
(f) Further multinode support (possibly node-to-node chat)
The remainder of my plans for 3.1 have not been decided upon.
IMPORTANT CHANGES
+ Password encryption (PWE) is now available. Here is how the
system works . . . Telegard stores a CRC32 value for the
input password *regardless* of the current settings for the
password encryption. If PWE is enabled, then the password
text is not stored, otherwise it is. With this system, the
CRC32 is then always used for password verification, and the
toggle only controls the storage of the text password.
Because of the design of this system, this feature can be
toggled off -- and on again -- without loss of user records.
Caveat: If the user forgets, tough -- the CRC32 can't rebuild
the password text if PWE is enabled-then-disabled if the user
can't remember the password which matches the stored CRC32).
Here is how it works (the low down). If PWE is enabled, all
the stored password text is cleared, leaving only the CRC32
value. The user inputs the password, and the CRC32 is
checked, and if equal, the passwords match and the user can
login. If PWE is disabled *after* it has been enabled, the
first time that a user logs in with the correct password
(matches CRC32), that password will be stored back into the
user record (and voila, the text is back, woohoo!).
The password will only be displayed in the user editor (a) if
PWE is disabled, and (b) if the stored CRC32 matches the CRC32
of the password text . . . otherwise, the password text is non
existent (PWE enabled) or is damaged (CRC32s don't match).
To enable/disable these flags, you must use the utility
USERS utility (Version 1.10+) with the option "PWE". This
will make the necessary modifications to the user file.
PLEASE DO NOT WRITE UTILITIES TO TOGGLE THIS FLAG, AS YOU MAY
DAMAGE YOUR USER FILES BEYOND RECOVERY.
If utility authors are going to change the PW text, they must
also update the CRC with the correct CRC32 routine (start
with 0xFFFFFFFF as the initial value). Remember password
input is entirely in uppercase, and the CRC32 is only stored
for the actual text string, not the length byte (i.e. starts
at pw[1] instead of pw[0]). If PWE is enabled, then only the
CRC should be saved to the userfile.
This method closely (well, almost identically) mimics the
method used in RemoteAccess. Infact, I waited until 2.50 was
officially released to see how successful it would be. It's
not an original idea, but it was an often requested feature.
LANGUAGES
* Please see the file LANGUAGE.300 for the changes to the
language files for 3.0. The language changes were fairly
significant (the cleanup the text therein is likely done
now . . .)
UTILITIES
+ USERS.EXE now sorts deleted users to the END of the user
data area so they are all grouped together. Sorting within
the deleted users group works the same as non-deleted users
(by security then by alphanumeric sort).
+ MAKELANG has been updated to 1.11. This version adds several
different commands which can be helpful in finding problems
or changing your language text.
(i) This version can create a text dump of the language
file, without MCI codes and without colour/comments.
The file can then be be used to spell check without
hassle (well, without as much hassle). It's option
-D (after the filename).
(ii) This version can also update language text
automatically with the output file (language.NEW) a
merge between two languages. Added lines will be
written with ;!ADDED preceeding, removed lines will
be commented out with ;!REMOVED preceding, and
updated lines will be double listed with ;!UPDATED
preceding. This is not useful for most SysOps since
heavy language modification will result in a large
number of duplicate lines, so I suggest using
CMPRLANG and the listing in LANGUAGE.UPD instead.
The commandline would be "MAKELANG lang-1.txt -M
lang-2.txt" where lang-1.txt is the language to be
updated from lang-2.txt (which should be our release
language, i.e. ENGLISH.TXT).
(iii) This version gives a more indepth warning message.
(iv) This version adds another language file compilation
method was added for fks Utilities (TCR, News, etc)
. . . information will be distributed with these
programs.
AREAS
* Area managers (file & message) are now paged. The length of
the page is determined from the online user (WFC=SysOp
Account) and adjusted accordingly so that no other page pause
should have to take place.
* Internally renamed "base" to "area" for all prompts and log
entries. Combined with the update to the language files,
"bases" are now "areas" (which is more intuitive).
* Semaphore files TGMBASE.NOW (message areas modified) and
TGFBASE.NOW (file areas modified) are now named TGMAREA.NOW
and TGFAREA.NOW respectively.
* Area compression is now re-enabled -- it now comes with a
lengthy warning as well.
MESSAGES
* More intuitive Internet Email/Newsgroup setup -- including
both as options in the area type setup (old options were
Local, Netmail and Echomail). Telegard automatically toggles
UUCP on for these new "types" and describes the areas as
'Internet' or 'Newsgroup' accordingly. No structural changes
were made for this version.
* Waiting mail scan will now skip areas toggled as Newsgroups
(UUCP+Echomail). Waiting mail scan now also uses the index
files (*.SQI/*.JDX) to determine if mail is waiting for the
current user in any given area -- this scan is inherently
faster than the previous scan because it's all done with
crc/hash values and requires little more than a quick memory
scan for areas and only one disk read for each area (instead
of multiple) - the buffer works for 8191 JAM messages or 5461
Squish messages, and automatically recycles itself if areas
contain more messages. Please let me know if you notice the
speed difference . . . I'll keep working on it too.
+ Added subcommand to menu item MW for listing areas with new
messages; i.e. using menu command MW with options L will
generate a list of message areas with new messages. If the
option is P instead of L, the user will be prompted to read
the messages if any are found . . .
* Nodelist browsing problems should now be fixed once and for
all -- my terminals and the local screen translate NULL (#0)
as a space character, whereas most terminal programs ignore
the character, causing a jumbled column listing.
* Squish control information is now correctly read and
processed by Telegard from both the control area (as it was
skipping before) and the message text (as it was before).
During this process, I fixed (a) MSGID processing, and (b)
extra blank lines appearing at the end of a message after
origin lines.
Telegard now uses the MSGID as follows (this was how I
designed it for gamma-4, but it was not working properly) --
the MSGID is first used to determine the ORIGIN address of
the message. If a MSGID field is *not* there, and the header
origin address zone is not zero, that address is used. If
none of the above finds the address properly, it will come
out blank . . .
* Replying to messages in private email from a public area will
(a) no longer prompt to delete the message from the public
area, and (b) no longer send a 'REPLIED TO' receipt.
+ Added antiquated UUCP support (UUCP in the header, TO: name
in the message text). Most gateways (useful, up-to-date
gateways) no longer require this option. However, if needed,
it is now supported.
+ Added QuickQuote features which automatically assume RANGE
types, allow up to 9 lines to be quoted at once (don't ask
for any more -- I won't add support because you'll notice the
software which DOES support such quoting ranges end up with
hundreds of lines of quoted text!). This is faster and
perhaps more intuitive for some. Upon successful range
selection, text input mode is automatically re-enabled.
* Reworked the squish code to fix up a number of inefficiencies
and problems;
(a) The frame length of free frames will be maintained
so they can be used efficiently. This *should* help
with some space usage problems when the areas are
dynamically packed by Telegard.
(b) The control information (kludge) is now written
properly into the control area of the header instead
of the message text.
* Hitting '-' to goto the previous message should now skip over
deleted messages until it finds the previous available message.
* Kludge lines now work as in 2.7 (I changed my mind on how I
wanted to implement them). Kludge lines buried within the
message text in Squish areas (i.e. invalid lines) and SEEN-BY
and PATH lines in Squish areas will be shown in the TEARLINE
colour. Other kludge lines, and all JAM kludge lines, will
appear at the top of the text in the kludge line colour. The
toggle now works until it's turned *off* (meaning, once you
turn kludge line viewing on, each message you view will have
the kludge lines until you turn them off again).
+ Cross posting of messages has been finished. Messages which
have either files or carbon copies attached with them can *not*
be cross posted. Messages can only be cross posted into
PUBLIC local or echomail areas. Telegard will properly update
origin lines, kludge lines, MSGID, etc for each cross posted
message. A maximum of 10 cross posted areas has been set
internally, and the cross posting ACS is determined by a new
ACS setting (see Config.Messages.Access.CrossPosting). Cross
posted areas will be displayed at the top of the message in
each of the areas cross posted into (and the original).
+ Carbon copying messages has been finished. The message must
be posted from either board=0 or a netmail area. A maximum
of 20 cross posted messages has been set (internally), and
the carbon cop ACS is determined by the ACS setting (see
Config.Messages.Access.CarbonCopy). Like cross posting, all
CC'd users are added to the message text (i.e. there is no
blind CC: option in Telegard), and origin lines and kludges
lines are properly adjusted.
* Messages with more than one file attach should now have
all the files available for transfer (a count variable was
not being reset).
* After sending file attaches, if the last transfer was OKAY,
and the message is TO the online user, the files will be
prompted for deletion.
* Completely reworked the header initialization code (i.e.
to/from/subj headers) and while I have attempted to ensure
nothing went wrong, please let me know if it did. The code
is now more compact, and indeed, easier to follow as well
(this was more important from my point of view . . . )
* Posting messages from a kludge-line generating FSE in a
"Dear Abby" area with the "Real Name" option (3) should
no longer cause problems -- my fault folks -- my oversight!
* Replying to messages in internet email areas now sends
prompt 1126 instead of the standard netmail reply prompt.
* Copying and moving messages now reproduce the *identical*
message (header information, etc.) except with the following
modifications:
(a) Filtered (ANSI, etc removed per area setting)
(b) -- forwarded message -- text
(c) Header information, if requested
(d) PRIVATE setting if appropriate (pvt only area)
(e) Echo/Net/Local flag as appropriate
All other status bits, kludge lines, origin lines, etc. are
kept as is. Messages being sent from other systems will *not*
be re-echoed, local status bit will not be toggled, date will
not be changed, etc. If you want these features, FORWARD the
message instead.
* After forwarding/copying a message, the next message will
not automatically be loaded (i.e. you will remain at the
present message). The message header/text will also be
intact as it should be (without the forwarding text). Moving
messages will still move to the next message (the moved
message is toggled as deleted).
* QWK header initialization now uses the code the regular
posting does -- this should tighten up the header generation
and make the messages a little more consistent (i.e. they
will contain the proper MSGID (they didn't before), as well
as any other kludge lines added by the software.
* Posted messages will now have the following tear/origin
lines as appropriate:
~~~ Telegard/QWK v { QWK, local or no tear lines }
--- Telegard/QWK v { echomail & tear lines, QWK }
* Origin: ...
~~~ Telegard v { internet email/newsgroup }
---
* Origin: ...
--- Telegard v { echomail/netmail }
* Origin: ...
* Users should no longer be able to send email to their own
accounts. SysOps (with sysop access for that area) on the
other hand now *will* be able to send email to their own
account (for various reasons) -- I had a variable reversed.
+ AKA matching has been implemented within Telegard; the AKA
matching is done for each of the defined addresses (AKA
matching *must* be setup in the address configuration). This
means that a *single* netmail area can be used, and that the
address will be matched when the message is saved. The
matching is done as follows:
(1) Search for matching AKA ZONE:NET entry, and use
the *first* associated address if found.
(2) If not found, search for matching AKA ZONE:0 entry
for the outbound address zone (matches ZONE and
*all* nets in that zone), and use the *first*
associated address if found.
(3) If not found, search for matching ZONE:NET address,
and use the first one found.
(4) If not found, search for matching ZONE address, and
use the first one found.
(5) If not found, use the primary address (address 1).
Of important note, this will *only* work for Netmail areas.
The area must also be configured for AKA matching -- if not,
the address used will be as defined regardless of the
outbound address (this can be used if you wish to separate
the areas and use a specific address for each area).
ALSO OF IMPORTANCE: This feature makes use of the data files
as they were defined in the DEVEL300 package. However, they
use a setting (=0) which is likely not recognized by the
current offline mail doors. Thus, if you use either of these
doors (TGwave 1.12 or prior, Bluewave 3.11 or prior) it is
suggested that you do not enable AKA matching for any of your
areas until updated versions of the doors are available which
support the new files in the DEVEL301 package.
+ Added ECHOMAIL.JAM and NETMAIL.JAM support for all posted
messages. To turn this feature on, define the path for
the files in the Configuration.MessageSystem.Echolog path.
These files can be used to do a QUICKSCAN with your favourite
JAM tosser (I still suggest a FORCED FULL scan at least once
daily). Naturally they only contain messages posted in
echomail or netmail JAM areas . . . ;)
* TGMSCAN.NOW has been replaced with four separate semaphore
files dependant on the type/format of the posted message:
* ECHOMAIL.TGJ (JAM, Echomail)
* ECHOMAIL.TGS (Squish, Echomail)
* NETMAIL.TGJ (JAM, Netmail)
* NETMAIL.TGS (Squish, Netmail)
(NOTE: for semantics, newsgroups are set as ECHOMAIL,
internet email as netmail). The semaphore files are touched
when the message is WRITTEN to the area, and no longer at the
end of the BBS session (logout).
* Fixed importing text from the FSE, or when formating Squish
text so that initial 1st line characters are not lost.
+ Internet email areas now force the internet address to be
of the form user-name@server-name. If the server-name is
not included (i.e. 4ts2, 4ts2@) or if the user-name is not
included (@qlink.queensu.ca) the address will be rejected.
This is *not* active for replies, since some replies are
sent to UUCP, and since if the message arrived from an
address, it should be able to go back from whence it came!
* Users who do not have enough SL or ACS (restriction flags,
etc.) to post a password inquiry message will be informed of
such, and then hungup. Private posting ACS, as well as the
Email/Post restriction flags all affect this.
* Telegard now has two distinct quoting methods - SmartQuote
enabled or disabled. If ENABLED, Telegard will wrap lines of
70 characters or more together to create smooth flowing text.
If DISABLED, Telegard will truncate lines that are too long
to fit onto one line. Both should create "smoother" quoting
than the previous zig-zag production.
* I believe I may have nailed the "*" Anonymous toggle option
w.r.t. JAM areas -- Squish areas have another problem in
relation to that, something I'm in the process of fixing.
+ New menu command M! which will provide a listing of message
area traffic (i.e. low & high message numbers, total messages,
local messages, % local, active days, message/day). Useful
for quickly judging those echomail areas to get rid of (0%
local & high daily traffic, low daily traffic, etc.)
* Reworked the error code return procedures, such that DOS
ERRORS and SWAPPING ERRORS will be the only cause of the
internal FSE loading up after a failed external FSE. If the
FSE returns with an errorlevel <> 0, then the message will
simply not be saved (i.e. aborted) -- useful for those FSE
versions which return errorlevel=1 for aborted messages.
* JAM messages with control fields (subfield) lengths longer
than 8K will be truncated at that point - for Fidonet
messages, this is of no *real* concern (the only thing which
could cause it to hit that length would be an extreme amount
of message routing with lots of ^aVIA lines). Internet
routed messages *can* cause this to happen, especially those
silly-go-lucky internet mail readers which append a CC: for
hundreds of users in a blind (and shall I say extremely
negligent) manner.
+ Added Confirm FSE Save option (if enabled, will prompt as
usual -- if disabled, will just automatically save the
message (well, move to the next step (cross-post, etc.).
* Deleting users while editing them from a message should no
longer lose the last-read & scan tables for that message
area. With enough information, I've been able to track this
one down (so don't be brief in your bug reports!)
* Message header should be properly updated when files attaches
are successfully transferred/moved.
* With SmartQuote disabled, Telegard was getting hung up on
soft-CR and erroneously removing lines. Telegard will
truncate text not wrapped in soft-CR's when the text to be
truncated is less than 10 characters in length.
* Fixed up some of the message area code with regards to
skipping in private areas/private messages -- messages which
are private (area or message) and are not to/from the online
user will always be skipped in Waiting, ToUser or FromUser
scans, and will be skipped for Non-SysOp ACS users otherwise.
I *think* I now have the logic properly defined.
+ Telegard now uses specific netmail areas for specific AKA's.
There are a few things to note with respect to this new
method of matching netmail areas:
(a) UUCP Netmail and Regular Netmail should be separated -
such that you have a Regular Netmail, and an Internet
Email Area (UUCP Netmail). If you use the same net
address for both regular netmail and UUCP mail, you
will need to define two AKAs the same with different
netmail areas, and the correct AKA# in your message
areas. (I personally use a point address for my
UUCP Newsgroups and Internet Email, specifically to
avoid confusion).
(b) Telegard does AKA matching *after* checking the
netmail area. If the message area uses AKA#3, then
Telegard uses the netmail area for #3, then checks
the AKA match setting for that netmail area. It does
*not* IOW, match aka's, then use the appropriate
area -- it is assumed the specific echomail
conference in use is using the AKA with the
appropriate outbound mail settings.
(c) Replies to messages *in* a netmail area will use the
current area for those replies.
? Want to hide your Email area, but still have it accessible to
all your users for reply/reading with the email functions?
Just add it to a dummy conference (C! for example), and it
won't show up in area listings, but it will still be
available for all regular email functions! (a handy tip from
your friendly TG users on TG_SUPPORT that even I wasn't aware
could be done . . . )
* Message area compression always starts at area #1 -- The
email area, if the user has ACS, is always area #0. This
means that using the above method to 'hide' the email area
will leave all other areas starting as area #1 (a helpful
solution from your friendly TG programmer . . . )
* Waiting (Personal) mail scan should now allow an abort
and properly pay attention to it. ;) It should now also
start at the correct first message, instead of the first
message after the last-read pointer.
* Hitting '-' when reading messages in a non-reverse mode
while at the first message, will no longer end the scan.
+ Netmail will be prompted for deletion after replying.
Netmail can be forced deleted (as in email) with the new
flag ForceNetmail (see OTHER section).
* Origin lines will be truncated to 79 characters. The origin
line setup in Telegard was left long enough that short node
addresses could use the full length. However, some longer
addresses would incorrectly wrap with the same origin line.
Telegard now truncates that line (the origin text portion) if
adding the node number would create too long a line.
* JAM message bases now properly support the LOCK_FIRST_BYTE
when writing messages back the file. Note the following
consideration (important) when using JAM:
Do *not* pack your message bases while there are active
nodes . . . If the base happens to be open and being read
by a user, the packer will likely open the file in
ReadWrite+DenyAll mode, which when Telegard attempts to
read the next message will crash the online node.
(same goes for Squish as well . . . )
* Telegard will only prompt if the message is to be deleted if
the original base was either base #0 or was a netmail area.
This will stop the RT#100 and asking to delete messages from
a public base after they have been replied too . . .
+ New message command MT to automatically post a file (from
default TEXT path only). The required parameters are
area#;filename;subj;from;to;toaddr, where:
area# Post to area#
filename Filename to post
subj Subject (blank=filename)
from Post from user (blank=SysOp)
to Post to user (blank=Online User)
toaddr Netmail address (if netmail area)
This is an internal routine that I'm making available for
SysOps to use in menus/scripts. Please note that because of
the limited menu options space, you can only have a combined
total of 50 characters (running from a script will give you
~250 characters). MCI translations will take place in the
routines for the subject, from and to fields, as well as the
imported message text. For example:
MT 0;NEWUSER.TXT;Welcome New User!
Will post the file \text\NEWUSER.TXT in the email base, with
the subject "Welcome New User!", from the SysOp (no from), to
the active Online User (no to/toaddr).
MT 51;TGSUPP.TXT;ELU MOD;Tim Strike;Echolist;1:201/0
Will post the file \text\TGSUPP.TXT in the netmail base (#51
on my system), with the subject ELU MOD, from Tim Strike, to
Echolist with the netmail address 1:201/0.
MT 0;ECHOSTAT.TXT;;;Tim Strike
Will post the file \text\ECHOSTAT.TXT in the email base, with
the subject ECHOSTAT.TXT (no subj), from SysOp (no from), to
Tim Strike.
There are tonnes more things you can easily do, just remember
to keep things simple. If you need something more complex,
may I suggest an external autoposter . . . :)
* Replying to the original poster in a netmail area would
result in the incorrect address being used (oops).
FILES
* CD-ROM support should now work again. The labels off CD-ROM
should be the label listed with a DOS directory listing -- no
difference from that used by Telegard. Audio CD support is
almost ready (since Telegard currently crashes OS/2 and
certain drivers, it needs to be fixed soon).
* Timeleft will now be updated at the file tagging prompt,
instead of waiting util the user hits the next menu prompt.
* File size (~&3) now puts a leading zero for decimal point
numbers < 2 characters.
* Fixed bug of waiting for description after a user has hungup;
it would correctly process the first file if it hadn't
already bee done, but would prompt on any successive files.
If it occurs now, it should just boot past and dequeue all
the files automatically (incl. testing).
* File manager will not attempt to create directories on CD-ROM
detected media (for those who type the paths from their CD's
in wrong . . . :).
* Conversion command will not prompt for CD-ROM area selection,
but rather will just avoid CD-ROM areas (for due reason).
* If "Search All" is selected as NO, then the "Search CD-ROM"
prompt will not be given at all (why bother, it's one area).
If you really mean to search only one area, well . . . ;)
* 1,000,000 bytes is now considered a meg in terms of the file
section -- this isn't true, but it will suffice for the
display purposes of the file system.
* Cosmetic changes to /U command (fixes pause overwriting scan)
* ?:<field> input text is now definable in the language file
(it was hardcoded to `09?:`1F previously).
* Telegard now handles highlighting text/colour restoration
internally. Searching for text that is a part of your
display line should no longer highlight that text.
* Files which fail the virus/integrity check were properly
marked as 'unavailable', but the users were still erroneously
given credit for the failed file (Thanks Keith -- I did
eventually find the problem).
* Unvalidated files will now always show in the newscan to
users with SysOp ACS. This is how it used to be, and is
infinitely handy . . .
* The file listing now displays the files (and the appropriate
lines) in the following order (using the first logical one):
1. 'Failed' files 3. Offline files
2. Unvalidated files 4. Normal listing
This should make it more apparent when a file was failed,
instead of having to first validate the file before the failed
tag would appear.
+ File listings can now display the uploader name/date. This
is controlled via the SystemConfig.FileSystem.ListUploader
toggle, and secondly by the SeeNamesACS for each area (if not
met, the line will not be sent).
* Unlisted uploads (not in queue) are now sent to the default
UL area if defined, and to the SysOp area if not defined.
The default UL area is set via System.Config.FileSystem.UlArea.
* Just deleted files will not appear as 'invalid' when trying
to re-upload the files. I was foolishly checking some flags
when exact extension matching as off.
* Offline files will no longer be given tagging numbers. This
saves the tagging numbers for active files only. The field
is just blank for offline files.
* # of tagged downloads MCI is actually ~FQ instead of ~FG.
+ Minimum upload space check has been re-enabled. Somewhere in
my rewrite of the file sections, we lost the check for drive
space . . . it should now properly deny uploads if less space
than configured is detected (on the upload drive).
* I removed the validate-all-files variable (which used to
indicate whether incoming files were automatically validated)
and included that code as part of auto-validate and credit
users (which used to read autovalidate ul ACS, but only
updated the users credit). This was done to alleviate some
confusion, and hopefully -- hopefully -- fix some bugs.
* Queued file points were not being added up - and thus, only
newest file was checked for available points. If all the
files were within the ratio, all the files could be
transferred. This was incorrect -- queued files are counted.
* Fixed non-archive auto-uploading (which would print files
on the same line) -- it now prints the "default" description
instead.
SCRIPTS
* Variable substitution will now work in get input mask.
+ Added TRANSLATE and RANDOM functions - see SCRIPT.REF.
+ Included BDAYCHEK.SCR which can be run, as an example, from
your LOGON.SCR file . . . it randomly checks the Birthdate of
the users and hangs them up if they get it wrong . . .
* Telegard now reads the file as READONLY + DENYNONE in
binary format rather than text format. This will hopefully
stop the OS/2 access denied problems, as well as end some of
the 103/105 problems some multinode environments have
encountered. Please note, that because text files are
inherently faster to process in BP, I have had to write some
buffering routines. While I've tested them and they *do*
work, there could be minor bugs in the routines.
* IF/IFNOT statement handling has been changed -- DRASTICALLY.
Please test these functions carefully, as my logic, while
it looks good on paper and in code may not work as well in
practice. Putting JUMP statements in IF/IFNOT statement
blocks should no longer cause any RT202 problems -- just be
careful of where you put your :LABELs. You can now only have
up to 20 nested IF/IFNOT statements.
* The script is now recursive to only one level deep. The only
code that is recursive beyond this are the ACS, KEYPRESSED and
FILEEXIST statments. Be careful of how many of these
statements you link together (as you may find significant
problems if you link too many together) -- for instance:
ACS S255 ACS FA GOTO PASSED ; is incorrect, and dangerous
ACS S255FA JUMP PASSED ; is correct
and
ACS S255 KEYPRESSED FILEEXIST JUMP LEVEL
; is dangerous because it nests 3 functions
* Labels can now only be 12 characters in length. Labels are
expected at the first level, not buried within
IF/IFNOT...ELSE...ENDIF statements. If labels are buried,
they will cause signficant problems.
* Removed BEGIN/END blocks. I decided this would remove *some*
of the 202 errors that were happening (and if 202 didn't come
up, the system *might* hang). BEGIN/END blocks with IF/IFNOT
statements are not required, and other statements can be
worked around differently (if you need help, mail me).
+ Added JE (Jump Equal) and JNE (Jump Not Equal) to the SCRIPT
commands. They are used to explicitly replace the following
type of construction, which *will* cause problems:
IF "$OPTION$" "A"
GOTO opta
ENDIF
JE "$OPTION$" "A" opta
* GOTO has been renamed JUMP. This coincides with the JE/JNE
statements, and also forces people to look at their scripts
for the proper :LABEL format now expected.
+ CALL/RETURN functions have been added. CALL stores the
current position and then jumps to a label. RETURN returns
to the last CALL position and continues executing from there.
You can only have 10 nested CALL statements at any time.
+ Added ELSE construct to the IF statement. The correct method
of use would be:
IF/IFNOT "test1" "test2"
<statements>
ELSE
<statements>
ENDIF
* Input of a CHAR will now accept ^M (ENTER), ^[ (ESC), ^_
(SPACE) and ^^ (^). If you want to include ^ in your "valid"
characters for a CHAR, you must use ^^. The IF statements
will also check this; so if you want to use ^ in your IF
statements, you must use ^^. Thus, doing IF "$INP$" "^["
will check to see if the input character was ESC.
* More of the login sequence was moved from the actual code
into the LOGON.SCR file. Please review this file for changes
and make the necessary changes to your script (short msg,
voting, mail check, etc. are all now part of the script).
* FILEEXIST/ERASE now append /temp/ to the filename if a path
is not given. This is used to test/erase files in the
temporary directory, such as those created with FILECREATE
(which when a path is not given, defaults to /temp/).
MULTINODE
* NODEACSn file renamed to NODEAnnn for support of more nodes
on this file (1-9 previously, now 1-999).
+ I finished the node phone option. It is now displayed with
the MCI code ~CF (the primary phone number is still displayed
with the old MCI code -- this one changes depending on what
node is in use, and what the nodephone setting is defined as).
This is one of the two MCI codes which can be used in the
origin line (~CN being the other).
* Fixed bug of last node always being "unused".
MENUS
+ Added option to change the Who's Online text when menus are
loaded -- if set to NULL (blank), then whatever is currently
on the status is left, otherwise it's updated to the text
stored for each menu. Thus, you can create status of "File
Menu", "Main Menu", "Message Menu", etc. without having to
link a FIRSTCMD for each of those menus . . .
+ Added menu command OY, to add VOTING QUESTIONS (this was an
oft requested feature, and with the addition of my init vote
code, a really _easy_ feature to add).
* Menu editor uses More? pausing when listing commands.
+ Added L; pre-door command to turn off logging of the door
(door use & login time, logout time).
* A clarification on usage of those toggles is required as
well; put all the door flags you want BEFORE a semi-colon,
then put the door command. i.e. LSR;C:\DOORS\BRE... would
indicate NO LOGGING, NO STATUS UPDATE, REAL NAMES in drop
file and C:\DOORS\BRE... is the door command to be run.
+ New menu option to center/not center sub-titles, separated
from the center/not center titles (which will now only work
on the main menu titles).
* Menus with passwords will now properly check the ACS for the
menu first, then if that passes, check the password, and if
that passes, allow the user into the menu (otherwise the
defined FALLBACK menu is processed).
+ Menu command OI to automatically change languages. The
syntax is OI with <language> as the Options. If <language>
does not exist, be forewarned, the user will be prompted for
a language to use (I didn't rewrite any routines, this is why
it works this way -- sorry). Language ACS is *not* checked.
* Added -M menu command to send short messages. The required
parameters are user;message (input will *not* be requested if
the parameters are missing). If the user is online (on any
node), the message will be sent right away, otherwise it'll
be stored in the shortmessage file. Use for messages to
a specific user rather then to a specific node (use NM for
that).
+ New option for menus; the ability to set the input type to
FORCED SINGLE KEY, FORCED FULL LINE and USER SETTING for each
menu (the addition was the first listed -- it's helpful for
menus when where you need KEYED input).
* I rewrote part of the core menu handler to optimize for
memory and speed. I have tested it fairly well (-^,-/,-\)
but let me know if there are any problems.
DOORS
* CHAIN.TXT now accepts the R parameter in the options field.
This format stores BOTH names, which is why it wasn't
available before, however, some doors do not have toggles of
which to use. Adding R will reverse the field order to enable
the SysOp to choose which is used.
OTHER
* Found and fixed a flush input buffer problem - this routine
was only called during shutdown, but under the right
circumstances (RTS/CTS low), it would call a fossil function
which would lock the system up tight.
* File copy/move routine now uses it's own internal buffer.
It is a little slower (64K vs. 1K buffer), but will not cause
problems during file attaches, etc.
* Fixed timeout of WFC ocmmands (so they properly abort instead
of using previously input command).
* Language manager starts numbering at 1 to be consistent with
the language selection prompts.
* Telegard will check language ACS during the login process,
and if the user does not meet the ACS, will prompt them to
select a different language.
* Telegard will now loop until a valid language is found at the
language selection prompt.
* Language .TGL will be checked for existance in the \language\
path before offering a language to a user for selection. If
it does not exist, the language is not offered.
* At the WFC menu, local security enabled, returning from the
shell should return the cursor to the proper position.
* Deleting users from the WFC screen without having first gone
into the WFC QuickMessage area should no longer result in
error.
+ User editor search engine has been completed and added back
to the Telegard code. I just rewrote it instead of importing
anything from 2.7, so *please* give it a really good run
through.
(a) The text search is case insensitive
(b) If an ACS function exists for a specific item, there
is no duplicate option (use ACS)
The search engine can be defined with '*'. Once satisfied,
you must start the engine with the start function from this
menu. Use '}', '{' to search forward/backward, and '/' to
list all matching users.
* Updated RAR archive definition -- it was incorrectly using
an external view, when Telegard itself has RAR viewing built
in. If you previously imported the RAR definition, you can
safely blank out the view command and let Telegard handle it
(this is safer and faster!).
+ Added CAPTURE keyword to archive definitions, to coincide
with a new feature - capture external. The reason, is that
some people wanted to integrate seemless archive viewers into
Telegard, but prior to 3.0, Telegard was redirecting the
output. If you were using external viewers before and
relying on Telegard to automatically capture the output, you
must now toggle this feature with the archive manager.
* Since I implemented CC: and cross-posting differently than I
originally intended, I didn't need all the memory that
Telegard was reserving. Subsequently, I've reduced the
reserved memory quantity from 55K(g4) to 15K -- since only
scripts use this memory and this should be more than enough
for all the script variables etc. to be stored. This will
free more for low memory doors (use !; no swap to take
advantage of the extra memory for these doors).
Thus, Telegard expects ~440K in memory requirements total,
and really only requires 425K to run (without scripts --
although that really *is* pushing things).
* Semaphore directory now defaults to \tg\SEMAPHOR\
* As requested, voting answers now have a vote tally MCI code.
* Backspace is available during the SysOp PW input at the WFC.
* Installation will now set NodeCheck timing to 10 seconds
instead of 0 seconds. If your entry is set to 0 seconds,
I suggest a range from 4-15.
+ Added ForceNetmail flag to user record. This operates the
same as the ForceEmail flag, except on netmail areas. If
enabled, it forces the netmail to be deleted before
continuing with any type of scan (ala Email) and also
auto-deletes the netmail message after email. By extension,
this flag also controls Internet Email areas.
* Displayed files are now opened in fmRead+fmDenyNone mode
instead of fmText mode. Again, I've had to buffer the file
input on a file by file basis; the buffer is 128 bytes in
length (standard textfile buffer) and performance wise there
should be no difference, but it may stop problems on OS/2
systems and systems where the files are poorly locked. Since
BP does not contain internal buffering I've had to write my
own little routines. Please let me know if there are any
problems.
* ALT-P now works from the initial ANSI/Language prompt (I was
incorrectly checking for online users, and not taking any
input for a filename if there wasn't one, and then
incorrectly using that non-filename for the capture file ;)
* Telegard now opens the overlay in fmRead + fmDenyWrite mode
instead of just fmRead mode (which can often be interpretted
by another task as fmRead+fmDenyAll).
* The search progress is now back in the nodelist browse (where
it got removed, I don't know). I also added the highlighting
of the search text as per the user browse/file area sections.
I also fixed some RT problems I was having here -- I couldn't
figure out why, but I'm no longer getting them . . .
+ Added -NET command which will disable local SysOp keys so
they can't be used. This option should be used when allowing
network access via a lan to the system. The command to load
(create a TELEGARD.BAT file if neccessary) would be:
TELEGARD -B0 -NET -Q
which will load up in local login mode (-b0), toggle network
mode (-NET) and quit after login (-Q). To restrict the
access in this manner, it may be neccessary to limit the
usage of the /telegard/ directory to a specific account login
name (i.e. "Telegard") which automatically loads in this
manner -- but don't quote me yet, my network isn't up and
running just yet.
+ SysOp Macros (F1..F10) are now available. These are always
active, even when the user macros are not. Be forewarned
however that Telegard internally clears the buffer to ensure
user continuity, and thus, occasionally you will find the
stored keys are cleared. See SystemConfig.SysopMacros.
Added ability for the sysop macros to spawn a shell process.
Starting a macro with # will write the remainder of the
macro to a batch file, which will then be executed from the
/temp/ directory.
* ~ER will trim characters from the left rather than the right
when the field is longer than the imposed limit. Colour
codes may be truncated . . .
* Telegard now handles highlighting text in the user browser
differently. Searching for 2 will not highlight colour
codes for instance. In addition, because of some logistically
problems, Telegard will search only the displayed
name/location for the text (if you're not displaying location
in your user listing, you'll have some empty highlighted users.
* Because of the changes to the highlighting code, Telegard now
uses ^K and ^N internally (Ascii 11, 14). Since these are
commonly control characters, they shouldn't be used in regular
output. But they might come in handy in scripts -- ^K stores
the colour, and ^N restores the saved colour . . . only from
within text displayed strings (runtime).
+ Added option to remove color codes from user information
(names & address). See SystemConfig.NewUsers.KillColor.
* Input fields will no longer be generated for PW/SPW areas -
this isn't too important, just might help a few FS login
designs.
* ANSI/Avatar files with line lengths longer than 255
characters will be adjusted in an attempt to keep ANSI, and
to a lessor extent Avatar, sequences together; the
ANSI/Avatar character *must* however appear within the last
50 characters for speed/parsing reasons. I've tested it with
long ANSI screens which used to mess up without problems . .
. this however is *before* MCI parsing -- if you use
extensive MCI expansion, Telegard does not (yet) currently
extend past the 255 character string restriction.
* Redesigned the voting updates a little - vote updates are now
done on the fly if a user has not yet voted on a question;
based on the last voting that was done, and the
initialization time of the voting question. This should (a)
eliminate any potential problems of 'ghost' votes (I could
not replicate this, but it was reported), (b) eliminate the
need to worry about other online nodes, (c) speed up the
initialization (it's only done for users as they login as
opposed to all users each time the question is initialized .
. . and probably many other facets I have yet to even
imagine. This change *might* mean your users get asked to
vote on questions again, and quite possibly create a skewered
number of vote returns -- if you wish to fix that, you'll
have to manually (R)eset your questions in the voting
manager.
* Added MULTIRING support (i.e. answer only on second ring,
etc.). This was added for future caller-ID support (which I'm
working on now). If using multiring answering, then I
suggest you set the counter reset value to ~3-5 seconds.
This will prevent counter rollovers between a <ring> <hangup>
<ring> sequence.
* I'm fairly certain that now I fixed the local-after-remote
login problems that the gammas were having (even though I
*thought* I caught it last time). It should also stop the
RING etc. problems when in the quick message/file areas . . .
modem incoming should be disabled except for actual
connections, and only for the most current connection (oops).
* I believe that the all the 'memory' code is now working
properly, included the "Used" portion of memory (which, when
added with "Reserved" should equal the entire program usage
give or take ~250 bytes). The two of main concern are:
* Stack ~31K * Used ~423K
If stack grows too small, or used grows much bigger then
this, the system has problems.
Telegard also needs *some* reserved memory. If the window
memory is set too small ("Reserved"+"Memory" < 5K) then
Telegard is likely to run into problems during operation.
It's better to give the window at least ~10K more then is
actually needed -- i.e. 433K ("Used"+buffer). The "Memory"
field lists memory outside of the reach of Telegard; this can
be used run programs when not swapping memory; if your shell
doesn't work, perhaps you're not giving the window enough
memory -- in this case, turn memory swapping on.
* Local modems (comport=0) boot into local I/O only at startup;
if a connection (-Bnnn with nnn>0) is being loaded, the
connection is refused.
+ Added "SysOp" login to the WFC menu (provided that local
security is *not* enabled). This option boots into the
system, but automatically loads the first user record (Record
1, Offset 0) from the user file . . . no name input, no
password input, just logged on. Yes, it's wonderful . . . :)
* WFC help (ESC) will now process commands as well -- i.e.
hitting ESC to see help, and hitting any valid WFC command
will jump directly into that command (instead of having to
clear the menu then hit the key) -- any invalid key will just
clear the help screen as will hitting ESC again.
+ Added TG_OPTS environment variable to hold standard command
line parameters (so that they are not required on the command
line) -- use only for global command line parameters, unless
using a local copy of the environment (shelled window).
Suggested options which can be easily included are: -EE[n],
-EN[n], -P, -V[n] and possibly -N[n] for those with a good
grasp of global/local environments and the right system
configuration.
* SysOp logs during the login process have been updated to be a
little more helpful under circumstances where users are
forced offline (no time/no calls left), forced to change
passwords, etc.
* SYSOP and NEW as user names will be correctly denied under
all circumstances now (before they were working only about
50% of the time).
* Unix time input routines now work correctly for hours > 18.
* Patched up the SHELL_TO_DOS routines, at least partially, so
that they don't require 8K of free STACK space to work
properly (returning error #202, or worse, a QEMM or system
error when returning from a dos shell).
* #C acs parsing now uppercases the user comment (only internal
to the routine) so that you can check text which isn't
uppercased in the sysop user comment field.
+ Added XN ACS for *inside* new user process (logging in).
* IEMSI with blank user names will not continuously cycle
through the name/IEMSI sequence (i.e. it would run the IEMSI
sequence several times -- it would, however, after 10
attempts hangup). Now, after the first attempt, it should
stop using IEMSI, and prompt for a user name (whats is the
point of enabling IEMSI without a username? -- ask the
braindead program Terminate! (my favorite of all the IEMSI
compatible terminal programs -- not))
* Numerous cosmetic (spelling, keys, etc) fixes -- far too many
to bother listing individually unless they are relatively
different than previous versions in operation . . .
* I rewrote some of the event code to make it a little more
efficient. Please report any event-related problems.
* I reworked some of the ACS parsing code to improve efficiency
in both size and speed. Please let me know of any ACS
parsing problems you encounter.
* Automessage line (1811) will now properly truncate at the
width of the longest automessage line (it was incorrectly
using 79 character or zero characters before).
* Fixed up the Avatar code -- it was _supposed_ to prompt for
ANSI fallback, and was not. It was also not properly using
the internal colours for Avatar mode (i.e. it was using B&W)
and several other items were not being used properly (high
bit for the graphs, etc.). RIP code now asks for both ANSI
or Avatar fallback (as it was supposed to).
* While searching for the above bug, I finally decided to track
and nail another pesky bug (since 2.7's time!) -- it would
cause the screen to go into CYAN mode only with TTY/Text
users online when certain events happened (such as entering
message text). At any rate -- tracked and squashed.
* Fixed a bug in the login routines, which would, if the user
hungup at the name prompt, cause the current user to be
filled with random 'garbage', resulting in the log routines
reading that garbage and seeing the 'trap activity' flag, and
thus creating SysOp logs with garbage ID's and garbage data.
* Fixed a bug (found while testing above) of newly created
separate logs missing a slew of logging information because
of an unprocessed file close.
* ANSI/Avatar files with line lengths of 254 + CR would cause
Telegard to incorrectly wrap the text -- fixed. This *should*
be all of the ANSI/Avatar problems fixed!
* The "current" language attributes are used for the VL/VM mci
codes. The "default" language filename for the online user
is stored in VV. This will normally be identical to VM,
except if the login language feature is used. The default
and current languages are now shown in the SysOp window as
well.
* Fixed login with name;password combination -- if the phone
numbers were included, there was no problem -- but a
name;password login would prompt again for a password.
+ Option to use TASK= environment variable for node number if
-Nnnn is not passed on the command line. Set to YES if you
have each task/node with a different TASK= environment
setting and want to use that as the default node for that
task (also take out references to -Nnnn from your command
lines since that parameter will be used first if found).
* The casino will display the dealer cards if the player
has Blackjack -- before it would just end.
+ Geographic region (U.S./Canada/International) can now be
forced to one of the aforementioned types - this is
especially helpful for systems which cater to entirely local
audiences (community systems for instance), and especially to
international sites.
* Windows 4.0 (aka 95) will now be reported as Windows 95 --
obviously this only applies when running in GUI mode,
otherwise it looks and operates just like DOS (7.00).
* Re-enabled toggle for global activity trapping (it was an
overlooked toggle even though the field has existed since
2.7). It's now item P on the Config.BBSConfig menu.
* ALT_N (line noise) has been removed.
* I rewrote the macro handling routines; they now allow macros
to be "stacked" instead of wiping out any previous macro, or
waiting for the previous macro to finish. This was done to
remove some unrequired code -- please let me know if it has
any side effects.
* During nightly maintenance, .SWP files in the /swap/ directory
that are older than 2 days will be automatically purged. If
any active window is open for more than two days, tough.
This much has been added -- now I just need a way to ensure
the files are always "*.SWP" files (they aren't right now).
* I started bracing the system for a change to 4 character YEAR
fields (required for >2000 to work properly). Some fields
already use the expanded 4 character year, all input fields
still use 2 characters, although all the code is in place for
4 character date fields for post-3.0 (file formats will need
to be updated). QWK code now always uses the logic if the
date < 1970 after conversion, that it's actually date+100
(i.e. 1901 => 2001, 1969 => 2069, 1970 = 1970 etc.).
* In the process of doing the above, I may have fixed the
post-birthday happy birthday code, which was unlikely to ever
execute.
* If the user does not meet the graphics requirements (minimum
graphics bps) during login, they will automatically be reset
to text only.
* I have done a rather lengthy run through of several commands
and updated the variables that they use. This was in order
to reduce the stack usage due to local variables during any
given procedure. I'm hoping that that I didn't blindly break
anything -- if you experience problems, let me know . . .
* While doing the above stack usage optimization, I had to
rework the SysOp window routines (mainly to get rid of the
8k (80*50*2) screen image). I'm using insert/delete options
of the BIOS/etc. so let me know if there are any problems.
Mike: I was unable to find the offending code that leaves
your cursor sitting at 1,1 after a door swap -- still trying.
* WFC menu now obeys Hardware.Mono setting - some of the menu
commands were not before. In addition, the SysOp side info
windows now obey this setting as well.
* Automessage will truncate at 79 characters, instead of using
80 (standard screen width), since most terminals autowrap and
cause an extra <CR>.
* IEMSI software information will now be purged to just
software name & revision, rather then including the serial/
extra information as well [oft used for software bragging
(.terminate.), something that I despise].
* Keyboard input at some point had the added bonus of clearing
out the screen line count; any key pressed during the
execution would be parsed, and if it wasn't an abort key would
accidentally reset the screen line count. This will fix
amung other things message title scans going longer than a
page, user listing not pausing, nodelisting not pausing, etc.
* The WFC will now load the user language used by the "wfc"
user record (Record 1, Offset 0 = SysOp). Thus the WFC
Message/File will use the SysOp's language of choice.
* The login sequence (before the Telegard version information),
will load the default NewUser language, and thus pull the
ANSI/name prompts from that language instead of the language
already loaded (the first language loaded for -Bn connected
calls, and the last active language for WFC answered calls).